For Log-Structured Merge (LSM) tree based key-value data storage systems (e.g., RocksDB, LevelDB), data compaction consumes significant overhead in terms of input/output (I/O) operations and computation cycles. Data compaction typically involves loading two sorted files from a storage device into a host device, performing a merge operation (in the host device) that includes discarding any older duplicates, and saving the merged file to the storage device. Data compaction operations can consume more than 90% of processor, memory, and storage I/O resources.
Although the following Detailed Description will proceed with reference being made to illustrative embodiments, many alternatives, modifications, and variations thereof will be apparent to those skilled in the art.